/**
 * AdministradorSeguridad.java
 */

 /**
 *  AdSec: Administrador de Secundarias
 *  Copyright (C) 2009 Daniela Ramírez Chaves (dannyrch@gmail.com)
 *  Copyright (C) 2009 Leonel Salazar Valverde (leo87sv@gmail.com)
 *
 *  This file is part of AdSec.
 *  AdSec is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  AdSec is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with AdSec.  If not, see <http://www.gnu.org/licenses/>.
 */

package adsec.negocios;
import adsec.entidades.Permiso;
import adsec.entidades.Perfil;
import adsec.entidades.Usuario;


public class AdministradorSeguridad {

    private static AdministradorSeguridad adminSeguridad;
    
    private Usuario usuario;
    private Perfil perfil;

    private AdministradorSeguridad(){
        usuario = new Usuario();
        perfil = new Perfil();
    }//fin de constructor

    public static AdministradorSeguridad getInstancia(){
        if(adminSeguridad == null){
            adminSeguridad = new AdministradorSeguridad();
        }
        return adminSeguridad;
    }//fin de getInstancia

    public Permiso getPermiso(int modulo){
        Permiso permiso = null;
        switch(modulo){
            case UtilidadesCapaNegocios.moduloEstudiantes:
                permiso = perfil.getPermEstudiantes();
            break;

            case UtilidadesCapaNegocios.moduloResponsables:
                permiso = perfil.getPermResponsable();
            break;

            case UtilidadesCapaNegocios.moduloMateriasMatriculadas:
                permiso = perfil.getPermMateriasMatriculadas();
            break;

            case UtilidadesCapaNegocios.moduloRegistroNotas:
                permiso = perfil.getPermRegistroNotas();
            break;

            case UtilidadesCapaNegocios.moduloDocente:
                permiso = perfil.getPermDocentes();
            break;

            case UtilidadesCapaNegocios.moduloDocenteImparte:
                permiso = perfil.getPermDocenteImparte();
            break;

            case UtilidadesCapaNegocios.moduloReciboMatricula:
                permiso = perfil.getPermMatricula();
            break;

            case UtilidadesCapaNegocios.moduloSecciones:
                permiso = perfil.getPermNivelesSecciones();
            break;

            case UtilidadesCapaNegocios.moduloNiveles:
                permiso = perfil.getPermNivelesSecciones();
            break;

            case UtilidadesCapaNegocios.moduloMaterias:
                permiso = perfil.getPermMaterias();
            break;

            case UtilidadesCapaNegocios.moduloAsistencia:
                permiso = perfil.getPermAsistencia();
            break;

            case UtilidadesCapaNegocios.moduloComite:
                permiso = perfil.getPermComite();
            break;

            case UtilidadesCapaNegocios.moduloPersonalAdm:
                permiso = perfil.getPermPersonalAdm();
            break;

            case UtilidadesCapaNegocios.moduloConfiguracionCicloLectivo:
                permiso = perfil.getPermConfiguracion();
            break;

            case UtilidadesCapaNegocios.moduloReportes:
                permiso = perfil.getPermReportes();
            break;

            case UtilidadesCapaNegocios.moduloUsuarios:
                permiso = perfil.getPermUsuario();
            break;

            case UtilidadesCapaNegocios.moduloPerfiles:
                permiso = perfil.getPermPerfiles();
            break;
            
            default:
                permiso = new Permiso();
                break;
        }//fin de switch
        return permiso;
    }//fin de getPermiso

    public void registrarUsuario(Usuario usuario, Perfil perfil){
        this.setUsuario(usuario);
        this.setPerfil(perfil);
    }//fin de registrarUsuario

    /**
     * @return the usuario
     */
    public Usuario getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the perfil
     */
    public Perfil getPerfil() {
        return perfil;
    }

    /**
     * @param perfil the perfil to set
     */
    public void setPerfil(Perfil perfil) {
        this.perfil = perfil;
    }

}//fin de clase AdministradorSeguridad
